﻿/*************
#ifndef COMMON_DEF_H_H
#define COMMON_DEF_H_H

//时间戳
typedef struct tagSTTimeStamp{
	int nYear;
	int nMouth;
	int nDay;
	int nHour;
	int nMinute;
	int nSecond;
	int nMillSecond;
}STTimeStamp, *PSTTimeStamp;

#ifndef WIN32
typedef struct tagSTVOriFrame{
    int nVideoType;//视频类型
    STTimeStamp stTimeStamp;
    long lWidth;
    long lHeight;

    //图片数据
    int nFps;
    long lDataLen;
    char  pData[4];

}STVOriFrame, *PSTVOriFrame;
#else
typedef struct tagSTVOriFrame{
    int nVideoType;//视频类型
    STTimeStamp stTimeStamp;
    long long lWidth;
    long long lHeight;

    //图片数据
    int nFps;
    long long lDataLen;
    char  pData[4];

}STVOriFrame, *PSTVOriFrame;
#endif


typedef struct tagDeviceMetadata
{
    STTimeStamp stTimeStamp;    //时间戳
    int nRunStatus;//系统状态
    float fFocus;               //焦距
    float fAperture;            //光圈
    float fExposureTime;        //曝光时间
    float fWhiteBalance;        //白平衡
    float fAngleA;              //A
    float fAngleE;              //E
}DeviceMetadata, *PDeviceMetadata;


typedef struct tagAnalysisMetadata
{
    STTimeStamp stTimeStamp;    //时间戳
    int nPosX;                  //目标x坐标
    int nPosY;                  //目标y坐标
    int nMissDistance;          //脱靶量
    int nGateTop;               //波门左上x坐标
    int nGateLeft;              //波门左上y坐标
    int nGateWidth;             //波门的宽度
    int nGateHeight;            //波门的高度
}AnalysisMetadata, *PAnalysisMetadata;
#endif  //COMMON_DEF_H_H

**********/

#ifndef COMMON_DEF_H_H
#define COMMON_DEF_H_H
//时间戳

typedef struct tagSTTimeStamp{
    int nYear;                      //年
    int nMouth;                     //月
    int nDay;                       //日
    int nHour;                      //时
    int nMinute;                    //分
    int nSecond;                    //秒
    int nMillSecond;                //毫秒
}STTimeStamp, *PSTTimeStamp;

// 目标元数据（波门等）
typedef struct _StSensorSingleObjData{
    //因此该编号有可能不连续，如：1、2、5、8、11、…
int     nObjIdx;		  //目标编号编号必须保持第一帧和当前帧指的是同一个目标，
    int     nPosX;         //目标x坐标
    int     nPosY;          //目标y坐标
    int     bomen_x;       // 波门左上x坐标
    int     bomen_y;       //波门左上y坐标
    int     bomen_wide;    //波门宽
    int     bomen_height;   //波门高
    int     offset_x;        //脱靶量 X
int     offset_y;        //脱靶量 Y
    double  offset_A;        //脱靶量 A
    double  offset_E;        //脱靶量 E
    double  AVelocity;       //速度A
    double  EVelocity;       //速度E
    double  Velocity;        //速度
    double  size;  //面积
    double  AForecastValue;  //预测A值
    double  EForecastValue;  //预测E值
}StSensorSingleObjData, * PStSensorSingleObjData;

//输出输入视频帧+元数据
//* 在传输过程中，头部均使用该结构，没有的字段均赋值为0\*\/
//* 没有波门数据时， nWaveCount = 0， nWaveContentSize = 0， pWaveData占用四个字节\*\/
//*后面没有视频数据时， nVideoDataLen为0， pVideoData为四个字节\*\/
typedef struct tagVideoFrame{
    int         	nVersion;           //数据结构版本定义：当前为 1
    int         	nSensorIdx;         //传感器编号
    short int    	nFrameNum;        	//帧编号
    short int    	nFrameHeadSize;     //帧头大小
    short int    	nImageType;         //图像类型 0-RGB 1-YUV 2-GRAY
    short int     nFps;               //帧率
    short int     nWidth;             //宽
    short int     nHeight;            //高
    int          	nFocus;             //焦距
    int          	nAperture;          //光圈
    int          	nExposureTime;      //曝光时间
    int           nWhiteBalance;      //白平衡
    char          szAE[16];           //AE值
    STTimeStamp  	stTimeStamp;        //时间戳
    int         	nObjTrackedIdx;     //当前追踪目标编号
    int         	nWaveCount;         //波门数量
    int         	nWaveContentSize;   //包含内容的字节数
    int         	nDataLen;      //视频帧数据长度
 /*******以上字节为固定头部，填充时如果没有值即为0*********/
    char        	pWaveData[4];       //数据偏移地址StSensorSingleObjData;目标数据波门（该长度）为变长，如果nWaveContentSize<4时，占四字节 ，否则占用nWaveContentSize空间。
    char        	pVideoData[4];      //数据偏移地址 //在本头部中占用4字节空间。与nVideoDataLen无关
}VideoFrame, *PVideoFrame;



//3.3.6	光机元数据结构
typedef struct tagDeviceMetadata
{
    int fFocus;               //焦距
    int fAperture;            //光圈
    int fExposureTime;        //曝光时间
    int fWhiteBalance;        //白平衡
    float fAngleA;              //A
    float fAngleE;              //E
}DeviceMetadata, *PDeviceMetadata;


#endif  //COMMON_DEF_H_H

